package com.shuaigexue.aicodegenerate.ai;

import dev.langchain4j.model.chat.ChatModel;
import dev.langchain4j.model.chat.StreamingChatModel;
import dev.langchain4j.service.AiServices;
import jakarta.annotation.Resource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * AI 服务创建工厂
 */
@Configuration
public class AiCodeGeneratorServiceFactory {

    @Resource
    private ChatModel chatModel;


    @Resource
    private StreamingChatModel streamingChatModel;
    /**
     * 快速创建ai代码生成器服务
     * @return
     */
    @Bean
    public AiCodeGeneratorService aiCodeGeneratorService() {
        // 这里要指定你要创建哪个接口的ai服务，并止指定使用哪个大模型
//        return AiServices.create(AiCodeGeneratorService.class, chatModel);
        return AiServices
                .builder(AiCodeGeneratorService.class)
                .chatModel(chatModel)
                .streamingChatModel(streamingChatModel)
                .build();
    }
}

// 项目初始化的时候，springboot会扫描到configuration注解，自动创建bean对象，并注入到spring容器中
// 就可以直接使用aiservice与ai进行对话了
// 这就是langchain4j的用法，我们只需要写接口就可以了

